package com.osstem.hanarolab.relay.service.impl;

import java.net.URLEncoder;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.osstem.hanarolab.relay.model.ItemDto;
import com.osstem.hanarolab.relay.model.ItemVo;
import com.osstem.hanarolab.relay.model.PictureDto;
import com.osstem.hanarolab.relay.model.PictureVo;
import com.osstem.hanarolab.relay.model.PlainTextDto;
import com.osstem.hanarolab.relay.model.PlainTextVo;
import com.osstem.hanarolab.relay.model.UserDto;
import com.osstem.hanarolab.relay.service.RelayService;


/**
 * RelayService 구현체
 * 
 * @author 오스템임플란트 jw
 * @since 2012. 10. 8.
 * @version 1.0
 * @see
 * 
 * <pre>
 * << 개정이력(Modification Information) >>
 *   
 *	  수정일  		수정자				수정내용		
 *	----------		------		------------------------
 *	2012. 10. 8.    jw				최초 생성
 *
 * </pre>
 */
@Service("RelayService")
public class RelayServiceImpl implements RelayService {
	
	//서비스 객체에서 사용할 vo객체
	@Resource(name="PlainTextVo")
	PlainTextVo plainTextVo;
	
	//서비스 객체에서 사용할 dao 객체
	@Resource(name="RelayDao")
	RelayDao relayDao;
	
	//응답전문
	StringBuffer responsePlainText = new StringBuffer();
	
	
	//의뢰서 전문 분해
	public PlainTextVo setPlainTextVo(String plainText){
		String req_no = plainText.substring(4, 19);		//의뢰서번호
		
		plainTextVo.setHeaderLength(plainText.substring(0, 4));					//헤더길이
		plainTextVo.setReq_no(req_no);											//의뢰서번호
		plainTextVo.setReq_user_gb(plainText.substring(19, 20));				//전송주체
		plainTextVo.setReq_user_cd(plainText.substring(20, 25));				//전송주체코드(치과코드)
		plainTextVo.setRcv_user_cd(plainText.substring(25, 30));				//전송주체코드(기공소코드)
		plainTextVo.setPassword(plainText.substring(30, 50));					//비밀번호
		plainTextVo.setCmd(plainText.substring(50, 52));						//명령(명령코드)
		plainTextVo.setSt_cd(plainText.substring(52, 54));						//상태
		plainTextVo.setSend_dt(plainText.substring(54, 68));					//전송일시
		plainTextVo.setReq_tot_len(plainText.substring(68, 78));				//데이터 총길이
		
		//이 밑부터는 옵션사항
		int req_len = 0;
		if(plainText.length() > 78){
			plainTextVo.setReq_len(plainText.substring(78, 88));					//의뢰서길이
		
			//의뢰서 데이터 설정
			req_len = Integer.parseInt(plainText.substring(78, 88).replace(" ", "")); 
		
			//의뢰서 데이터가 존재할경우
			if(req_len > 0){
				plainTextVo.setReq_data( plainText.substring(178, 178+req_len).getBytes() );
			}
		}
		
		//사진데이터가 존재할경우
		if(plainText.length() > 169){
			//사진데이터 vo 객체 설정
			plainTextVo.setPictureVo( new PictureVo[] { new PictureVo( req_no, 1, Integer.parseInt(plainText.substring(88, 97).replace(" ", "")), null) ,
														new PictureVo( req_no, 2, Integer.parseInt(plainText.substring(97, 106).replace(" ", "")), null),
														new PictureVo( req_no, 3, Integer.parseInt(plainText.substring(106, 115).replace(" ", "")), null),
														new PictureVo( req_no, 4, Integer.parseInt(plainText.substring(115, 124).replace(" ", "")), null),
														new PictureVo( req_no, 5, Integer.parseInt(plainText.substring(124, 133).replace(" ", "")), null),
														new PictureVo( req_no, 6, Integer.parseInt(plainText.substring(133, 142).replace(" ", "")), null),
														new PictureVo( req_no, 7, Integer.parseInt(plainText.substring(142, 151).replace(" ", "")), null),
														new PictureVo( req_no, 8, Integer.parseInt(plainText.substring(151, 160).replace(" ", "")), null),
														new PictureVo( req_no, 9, Integer.parseInt(plainText.substring(160, 169).replace(" ", "")), null),
														new PictureVo( req_no, 10, Integer.parseInt(plainText.substring(169, 178).replace(" ", "")), null) } ); //사진데이터 vo 배열
			
			//사진 데이터를 저장해준다.
			int picDataBeginIndex = req_len + 178;
			
			for(PictureVo pictureVo : plainTextVo.getPictureVo()){
				//사진길이가 0인 것이 나오면
				if(pictureVo.getPic_len() == 0)
					break;
				else{
					//사진길이가 0 이 아니면 전문으로 부터 해당 영역의 데이터를 잘라내어 저장한다.
					pictureVo.setPic_data( plainText.substring(picDataBeginIndex, picDataBeginIndex + pictureVo.getPic_len()).getBytes() );
					picDataBeginIndex = picDataBeginIndex + pictureVo.getPic_len();
				}
			}
		}
		
		return plainTextVo;
	}
	
	//치과/기공서 검색 전문 분해
	public PlainTextVo setPlainSearchTextVo(String searchPlainText){
		plainTextVo.setHeaderLength(searchPlainText.substring(0, 4));				//헤더길이
		plainTextVo.setReq_no(searchPlainText.substring(4, 19));					//의뢰서번호
		plainTextVo.setReq_user_gb(searchPlainText.substring(19, 20));				//전송주체
		plainTextVo.setReq_user_cd(searchPlainText.substring(20, 25));				//전송주체코드(치과코드)
		plainTextVo.setRcv_user_cd(searchPlainText.substring(25, 30));				//전송주체코드(기공소코드)
		plainTextVo.setPassword(searchPlainText.substring(30, 50));					//비밀번호
		plainTextVo.setCmd(searchPlainText.substring(50, 52));						//명령(명령코드)
		plainTextVo.setSt_cd(searchPlainText.substring(52, 54));					//상태
		plainTextVo.setSend_dt(searchPlainText.substring(54, 68));					//전송일시
		plainTextVo.setReq_tot_len(searchPlainText.substring(68, 78));				//데이터 총길이
		plainTextVo.setSearch_keyword(searchPlainText.substring(78));				//치과 검색어
		
		return plainTextVo;
	}
	
	//의뢰서 정보 입력(의뢰서 정보 + 의뢰서 데이터)
	@Override
	public String insertRequest(String plainText){
		
		//전문분해
		setPlainTextVo(plainText);
		
		try{
			relayDao.insertRequest(plainTextVo);
			relayDao.insertRequestData(plainTextVo);
			for(PictureVo pictureVo : plainTextVo.getPictureVo()){
				relayDao.insertPictureData(pictureVo);
			}
			
			//정상 동작한경우
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append(plainTextVo.getCmd())						//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append("         0");								//데이터 총길이
		}catch(Exception e){
			//예외발생
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append("99")										//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append("         0");								//데이터 총길이
		}
		return responsePlainText.toString();
	}
	
	//의뢰서 정보 삭제
	@Override
	public int deleteRequest(PlainTextVo plainTextVo) {
		return relayDao.deleteRequest(plainTextVo);
	}

	//의뢰서 데이터 입력
	@Override
	public int insertRequestData(PlainTextVo plainTextVo){
		return relayDao.insertRequestData(plainTextVo);
	}

	//의뢰서 데이터 삭제
	@Override
	public int deleteRequestData(PlainTextVo plainTextVo) {
		return relayDao.deleteRequestData(plainTextVo);
	}

	//의뢰서 정보/데이터 조회
	@Override
	public String selectRequestData(String plainText) {
		setPlainTextVo(plainText);
		responsePlainText.setLength(0);
		
		//응답전문
		PlainTextDto plainTextDto = new PlainTextDto();
		
		try{
			List<PlainTextDto> list = relayDao.selectRequestData(plainTextVo);
			List<PictureDto> pictureList = relayDao.selectPictureData(plainTextVo);
			
			
			//사진데이터 관련 전문 생성 준비
			StringBuffer picDataLength = new StringBuffer();
			StringBuffer picData = new StringBuffer();
			int pic_len = 0;
			
			for(PictureDto pictureDto : pictureList){
				//사진파일 길이 계산
				String pictureData = new String(pictureDto.getPic_data());
				picDataLength.append( String.format("%9s", pictureData.length()));
				pic_len = pic_len + pictureDto.getPic_data().length;
				
				//사진데이터 
				picData.append(pictureData);
			}
			
			//의뢰서 데이터 관련 전문생성 준비
			plainTextDto = list.get(0);
			
			int req_tot_len = 0;					//데이터 전체길이
			int req_len = 0;						//의뢰서 길이
			
			String req_data = new String(plainTextDto.getReq_data());		//의뢰서 데이터
			req_len = req_data.length();			//의뢰서 길이 계산
			req_tot_len = req_len + pic_len;		//데이터 총길이
			
			
			/*************************/
			/*여기서 부터 데이터 검증*/
			/*************************/
			
			
			//정상 동작한경우
			if(list.size() == 1){
				responsePlainText.append(plainTextDto.getHeaderLength())			//전문길이 테스트
								 .append(plainTextDto.getReq_no())					//의뢰서번호
								 .append("3")										//전송주체
								 .append(plainTextDto.getReq_user_cd())				//전송주체코드(치과코드)
								 .append(plainTextDto.getRcv_user_cd())				//전송주체코드(기공소코드)
								 .append(plainTextVo.getPassword())					//비밀번호
								 .append("03")										//명령(명령코드)
								 .append(plainTextDto.getSt_cd())					//상태
								 .append(plainTextVo.getSend_dt())					//전송일시
								 .append(String.format("%10s", req_tot_len+100))	//데이터 총길이(의뢰서, 사진파일길이 100포함) 
								 .append(String.format("%10s", req_len))			//의뢰서 길이
								 .append(picDataLength)								//사진파일 길이
								 .append(req_data)									//의뢰서 데이터
								 .append(picData);									//사진파일
			}
			else{
				throw new Exception();
			}
			
		}catch(Exception e){
			//예외발생
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append("99")										//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append("         0");								//데이터 총길이
							 
		}
		
		return responsePlainText.toString();
	}

	//의뢰서 수신완료
	@Override
	public String receiveComplete(String plainText) {

		setPlainTextVo(plainText);
		responsePlainText.setLength(0);
		
		try{
			
			int updateCnt = relayDao.updateRequestStatus(plainTextVo);
			int deleteCnt = relayDao.deleteRequestData(plainTextVo);
			
			//정상 동작한경우
			if(updateCnt == 1 && deleteCnt == 1){
				responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
								 .append(plainTextVo.getReq_no())					//의뢰서번호
								 .append("3")										//전송주체
								 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
								 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
								 .append(plainTextVo.getPassword())					//비밀번호
								 .append("04")										//명령(명령코드)
								 .append(plainTextVo.getSt_cd())					//상태
								 .append(plainTextVo.getSend_dt())					//전송일시
								 .append("         0");								//데이터 총길이
			}
			else{
				throw new Exception();
			}
							 
		}catch(Exception e){
			//예외발생
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append("99")										//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append(plainTextVo.getReq_tot_len());				//데이터 총길이
		}
		return responsePlainText.toString();
	}

	//의뢰서 상태변경 요청
	@Override
	public String updateRequestStatus(String plainText) {
		
		setPlainTextVo(plainText);
		responsePlainText.setLength(0);
		
		try{
			int updateCnt = relayDao.updateRequestStatus(plainTextVo);
			
			//정상 동작한경우
			if(updateCnt == 1){
				responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
								 .append(plainTextVo.getReq_no())					//의뢰서번호
								 .append("3")										//전송주체
								 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
								 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
								 .append(plainTextVo.getPassword())					//비밀번호
								 .append(plainTextVo.getCmd())						//명령(명령코드)
								 .append(plainTextVo.getSt_cd())					//상태
								 .append(plainTextVo.getSend_dt())					//전송일시
								 .append("         0");								//데이터 총길이
			}
			else{
				throw new Exception();
			}
							 
		}catch(Exception e){
			//예외발생
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append("99")										//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append("         0");								//데이터 총길이
		}
		return responsePlainText.toString();
	}

	//의뢰서 상태확인요청
	@Override
	public String selectRequest(String plainText) {
		
		setPlainTextVo(plainText);
		responsePlainText.setLength(0);
		
		try{
			List<PlainTextDto> list = relayDao.selectRequestData(plainTextVo);
			PlainTextDto plainTextDto = list.get(0);
			
			//정상 동작한경우
			if(list.size() == 1){
				responsePlainText.append(plainTextDto.getHeaderLength())			//전문길이 테스트
								 .append(plainTextDto.getReq_no())					//의뢰서번호
								 .append("3")										//전송주체
								 .append(plainTextDto.getReq_user_cd())				//전송주체코드(치과코드)
								 .append(plainTextDto.getRcv_user_cd())				//전송주체코드(기공소코드)
								 .append(plainTextVo.getPassword())					//비밀번호
								 .append(plainTextVo.getCmd())						//명령(명령코드)
								 .append(plainTextDto.getSt_cd())					//상태
								 .append(plainTextVo.getSend_dt())					//전송일시
								 .append("         0");								//데이터 총길이
			}
			else{
				throw new Exception();
			}
							 
		}catch(Exception e){
			//예외발생
			responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
							 .append(plainTextVo.getReq_no())					//의뢰서번호
							 .append("3")										//전송주체
							 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
							 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
							 .append(plainTextVo.getPassword())					//비밀번호
							 .append("99")										//명령(명령코드)
							 .append(plainTextVo.getSt_cd())					//상태
							 .append(plainTextVo.getSend_dt())					//전송일시
							 .append("         0");								//데이터 총길이
		}
		return responsePlainText.toString();
	}
	
	//사용자 정보조회
	@Override
	public String selectUsers(String plainText) {
		
		setPlainSearchTextVo(plainText);
		responsePlainText.setLength(0);
		
		List<UserDto> list = relayDao.selectUsers(plainTextVo);
		
		responsePlainText.append(plainTextVo.getHeaderLength())				//전문길이 테스트
						 .append(plainTextVo.getReq_no())					//의뢰서번호
						 .append("3")										//전송주체
						 .append(plainTextVo.getReq_user_cd())				//전송주체코드(치과코드)
						 .append(plainTextVo.getRcv_user_cd())				//전송주체코드(기공소코드)
						 .append(plainTextVo.getPassword())					//비밀번호
						 .append(plainTextVo.getCmd())						//명령(명령코드)
						 .append(plainTextVo.getSt_cd())					//상태
						 .append(plainTextVo.getSend_dt())					//전송일시
						 .append(String.format("%10s", list.size() * 342));	//데이터 총길이
		
		//검색결과 리스트를 응답전문에 append 
		for(UserDto userDto : list){
			responsePlainText.append(userDto.getUser_cd())
							 .append(userDto.getCst_nm())
							 .append(userDto.getUser_nm())
							 .append(userDto.getTel())
							 .append(userDto.getFax())
							 .append(userDto.getEmail())
							 .append(userDto.getZip())
							 .append(userDto.getAddr1())
							 .append(userDto.getAddr2());
		}
		
		return responsePlainText.toString();
	}
	
	//기공소 담당 의뢰서 조회
	@Override
	public String selectRequestsForReceiver(String plainText) {
		//전문분해
		setPlainTextVo(plainText);
		responsePlainText.setLength(0);
		
		List<PlainTextDto> list = relayDao.selectRequestsForReceiver(plainTextVo);
		responsePlainText.append(plainTextVo.getHeaderLength())					//전문길이 테스트
						 .append(plainTextVo.getReq_no())						//의뢰서번호
						 .append("3")											//전송주체
						 .append(plainTextVo.getReq_user_cd())					//전송주체코드(치과코드)
						 .append(plainTextVo.getRcv_user_cd())					//전송주체코드(기공소코드)
						 .append(plainTextVo.getPassword())						//비밀번호
						 .append(plainTextVo.getCmd())							//명령(명령코드)
						 .append(plainTextVo.getSt_cd())						//상태
						 .append(plainTextVo.getSend_dt())						//전송일시
						 .append(String.format("%10s", 0 ))						//데이터 총길이(의뢰서번호만 보내므로 데이터는 0)
						 .append(String.format("%3s" , list.size()));			//검색된 의뢰서 숫자
		
		for(PlainTextDto plainTextDto : list){
			responsePlainText.append(plainTextDto.getReq_no());				//의뢰서 번호 추가
		}

		return responsePlainText.toString();
	}

	//기공소 품목 정보 변경
	@Override
	public String mergeItem(String itemPlainText) {
		
		responsePlainText.setLength(0);
		
		try{
			int listSize = Integer.parseInt(itemPlainText.substring(68, 78).replace(" ", "")) / 100;
			
			for(int i = 1; i <= listSize; i++){
				ItemVo itemVo = new ItemVo();
				itemVo.setUser_cd(itemPlainText.substring(25, 30));									//기공소코드
				itemVo.setItem_nm(itemPlainText.substring(78*i, 78*i + 50).replace(" " , ""));		//풍목 종류 이름
				itemVo.setMat_nm(itemPlainText.substring(78*i+50, 78*i + 100).replace(" ", ""));	//재질명
				
				relayDao.mergeItem(itemVo);
			}
			
			responsePlainText.append(itemPlainText.substring(0, 4))						//전문길이 테스트
							 .append(itemPlainText.substring(4, 19))					//의뢰서번호
							 .append("3")												//전송주체
							 .append(itemPlainText.substring(20, 25))					//전송주체코드(치과코드)
							 .append(itemPlainText.substring(25, 30))					//전송주체코드(기공소코드)
							 .append(itemPlainText.substring(30, 50))					//비밀번호
							 .append(itemPlainText.substring(50, 52))					//명령(명령코드)
							 .append(itemPlainText.substring(52, 54))					//상태
							 .append(itemPlainText.substring(54, 68))					//전송일시
							 .append("         0");										//전송길이

		}catch(Exception e){
			responsePlainText.append(itemPlainText.substring(0, 4))						//전문길이 테스트
							 .append(itemPlainText.substring(4, 19))					//의뢰서번호
							 .append("3")												//전송주체
							 .append(itemPlainText.substring(20, 25))					//전송주체코드(치과코드)
							 .append(itemPlainText.substring(25, 30))					//전송주체코드(기공소코드)
							 .append(itemPlainText.substring(30, 50))					//비밀번호
							 .append("99")												//명령(명령코드)
							 .append(itemPlainText.substring(52, 54))					//상태
							 .append(itemPlainText.substring(54, 68))					//전송일시
							 .append("         0");										//데이터 길이
		}
		
		return responsePlainText.toString();
	}
	
	//기공소 품목정보 조회
	@Override
	public String selectItem(String itemPlainText) {
		responsePlainText.setLength(0);
		ItemVo itemVo = new ItemVo();
		
		itemVo.setUser_cd(itemPlainText.substring(25, 30));
		
		List<ItemDto> list = relayDao.selectItems(itemVo);
		
		
		responsePlainText.append(itemPlainText.substring(0, 4))						//전문길이 테스트
						 .append(itemPlainText.substring(4, 19))					//의뢰서번호
						 .append("3")												//전송주체
						 .append(itemPlainText.substring(20, 25))					//전송주체코드(치과코드)
						 .append(itemPlainText.substring(25, 30))					//전송주체코드(기공소코드)
						 .append(itemPlainText.substring(30, 50))					//비밀번호
						 .append(itemPlainText.substring(50, 52))					//명령(명령코드)
						 .append(itemPlainText.substring(52, 54))					//상태
						 .append(itemPlainText.substring(54, 68))					//전송일시
						 .append(String.format("%10s", list.size() * 100) );		//데이터길이
		
		for(ItemDto itemDto : list ){
			responsePlainText.append( String.format("%-50s", itemDto.getItem_nm() ));
			responsePlainText.append( String.format("%-50s", itemDto.getMat_nm() ));
		}
		
		return responsePlainText.toString();
	}
			

	//의뢰서 모든 정보삭제(의뢰서 정보 / 의뢰서 데이터 / 사진 파일)
	@Override
	public int deleteRequestInformation(PlainTextVo plainTextVo) {
		int deleteCnt = 0;
		
		deleteCnt = deleteCnt + relayDao.deleteRequestData(plainTextVo);
		deleteCnt = deleteCnt + relayDao.deletePictureData(plainTextVo);
		deleteCnt = deleteCnt + relayDao.deleteRequest(plainTextVo);
		
		return deleteCnt;
	}

	//전문분석후 알맞은 서비스 호출
	@Override
	public String managePlainText(String plainText) {
		
		String cmd;
		String resultPlainText = "";
		
		try{
			cmd = plainText.substring(50, 52);
			
			//의뢰서 전송요청
			if(cmd.equals("01")){
				resultPlainText = insertRequest(plainText); 
			}
			//의뢰서 전송여부 확인
			else if(cmd.equals("02")){
				resultPlainText = selectRequestsForReceiver(plainText);
			}
			//의뢰서 수신 요청
			else if(cmd.equals("03")){
				resultPlainText = selectRequestData(plainText);
			}
			//의뢰서 수신 완료
			else if(cmd.equals("04")){
				resultPlainText = receiveComplete(plainText);
			}
			//의뢰서 상태변경 요청
			else if(cmd.equals("05")){
				resultPlainText = updateRequestStatus(plainText);
			}
			//의뢰서 상태확인 요청
			else if(cmd.equals("06")){
				selectRequest(plainText);
			}
			//치과 정보 검색 요청
			else if(cmd.equals("07")){
				resultPlainText = "test";
			}
			//기공소 정보 검색 요청
			else if(cmd.equals("08")){
				resultPlainText = "test";
			}
			//기공소 품목 정보 검색 변경
			else if(cmd.equals("09")){
				resultPlainText = "test";
			}
			//기공소 품목 정보 검색 요청
			else if(cmd.equals("10")){
				resultPlainText = "test";
			}
			else{
				throw new Exception();
			}
			
			//인코딩한다.
			resultPlainText = URLEncoder.encode(resultPlainText, "UTF-8");
			
		}catch(Exception e){
			resultPlainText = "exception";
		}		
		//System.out.println("resultPlainText = " + resultPlainText);
		return resultPlainText;
	}
}